package com.example.pclimb.util;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * SharedPreferences工具类，用于保存和获取用户登录信息
 */
public class SharedPreferencesUtil {
    private static final String PREFS_NAME = "com.example.pclimb.prefs";
    private static final String KEY_USER_ID = "user_id";
    private static final String KEY_AUTH_TOKEN = "auth_token";

    /**
     * 保存用户ID
     * @param context 上下文
     * @param userId 用户ID
     */
    public static void saveUserId(Context context, int userId) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt(KEY_USER_ID, userId);
        editor.apply();
    }

    /**
     * 获取用户ID
     * @param context 上下文
     * @return 用户ID，如果未登录则返回0
     */
    public static int getUserId(Context context) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getInt(KEY_USER_ID, 0);
    }

    /**
     * 保存认证令牌
     * @param context 上下文
     * @param token 认证令牌
     */
    public static void saveAuthToken(Context context, String token) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(KEY_AUTH_TOKEN, token);
        editor.apply();
    }

    /**
     * 获取认证令牌
     * @param context 上下文
     * @return 认证令牌，如果未登录则返回null
     */
    public static String getAuthToken(Context context) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        return sharedPreferences.getString(KEY_AUTH_TOKEN, null);
    }

    /**
     * 清除登录信息
     * @param context 上下文
     */
    public static void clearLoginInfo(Context context) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.remove(KEY_USER_ID);
        editor.remove(KEY_AUTH_TOKEN);
        editor.apply();
    }
    
    /**
     * 清除用户信息（别名，与clearLoginInfo功能相同）
     * @param context 上下文
     */
    public static void clearUserInfo(Context context) {
        clearLoginInfo(context);
    }
    
    /**
     * 保存用户信息
     * @param context 上下文
     * @param userId 用户ID
     * @param username 用户名
     */
    public static void saveUserInfo(Context context, int userId, String username) {
        SharedPreferences sharedPreferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putInt(KEY_USER_ID, userId);
        editor.apply();
    }
} 